package com.lagou.module3.task2;

/**
 *
 * 编程获取两个指定字符串中的最大相同子串。
 *
 *  如： s1="asdafghjka", s2="aaasdfg" 他们的最大子串为"asd"
 *
 *  提示： 将短的那个串进行长度依次递减的子串与较长的串比较。
 *
 */
public class JobTest2 {

    public static String getMaxSubString(String s1, String s2){

        String max = "";
        String min = "";
        // 判断哪个是长串
        max = (s1.length() > s2.length()) ? s1: s2;
        // 如果最大长串等于s1，那么s2就是短串
        min = (max.equals(s1)) ? s2: s1;

        // 1. 将短的那个子串按照长度递减的方式获取到
        for (int x = 0; x < min.length(); x++){
            for (int y = 0, z = min.length() - x; z != min.length()+1; y++, z++){
                String temp = min.substring(y, z);
                //System.out.println(temp);
                // 2.将每获取到的子串去长串中判断是否包含，如果包含，已经找到！
                if (max.contains(temp)){
                    return temp;
                }
            }
        }

        return "";
    }

    public static void main(String[] args) {

        String s1 = "asdafghjka";
        String s2 = "aaasdfg";

        String str = getMaxSubString(s1, s2);
        System.out.println("最大相同字串：" + str);



    }

}
